Multiple-surface display projector with interactive input capability

ABSTRACT

The present invention projects an image onto any surface in a room and distorts the image before projection so that a projected version of the image will not be distorted. The surface could be planar or non-planar. The present invention also allows for a projected image to be displayed at multiple locations along a surface or multiple surfaces. This allows a projected image to move from one location on a surface to another location on this or another surface, while the projected image remains undistorted through the move. Moreover, the present invention allows interaction between people and a projector. Interactive input, such as from mice, may be used with the versions of the present invention. Importantly, versions of the present invention can determine if an object is near an interactive item (such as a hyperlink) on the projected image. If so, the present invention can activate the interactive item. This allows a person to interact with a projected image.

CROSS REFERENCE TO RELATED APPLICATIONS

[0001] This application claims the benefit of U.S. ProvisionalApplication No. 60/251,591, filed Dec. 6, 2000.

FIELD OF THE INVENTION

[0002] The present invention relates to video projection systems and,more particularly, relates to a multiple-surface display projector withinteractive input capability.

BACKGROUND OF THE INVENTION

[0003] Systems currently exist that project video images onto surfaces.One well known device in this genre is the common video projector. Thissystem takes a single image, placed onto a glass plate, and displays iton a wall or screen. One problem with this system is that the videoprojector must be aligned with the wall or screen. If this is not thecase, then the image displayed on the wall or screen will be distorted.This limits the effectiveness of this type of projector.

[0004] Another problem with this projector is that it is made to projecton surfaces directly in front of the projector. It cannot, for instance,project on the ceiling or, without movement of the projector, on a wallthat is not directly in front of the projector. Moreover, this projectorcannot move its projected image across a wall without having humanintervention. For example, to move a projected image from a certainlocation to a desired location to the left of the current location, anoperator will have to physically move the projector into the properposition and adjust the focus. Furthermore, even with the focusadjusted, if the new position is not directly in front of the projector,the projected image will be distorted.

[0005] Newer projectors are much more complex. These devices can acceptdifferent types of video sources, project using Digital Light Processingand other advanced technologies, and project using High DefinitionTelevision and other high definition standards. However, even thesedevices require the projector to be aligned with the wall or screen. Ifnot aligned this way, distortion will result. Additionally, none of theprojectors allow the image to be moved, without user intervention, fromone location to another.

[0006] Another problem with old and new video projectors is that theyare simple “one-way” devices. In other words, they can transmit video,but there are limited ways for the user to have any type of interactionwith the system. For example, when giving a presentation, the presenterwill generally have certain slides that he or she wishes to present. Tochange slides, the presenter must control the projector itself. Thisgenerally involves moving from the presentation area back to projector,changing the slide, and then moving back to the presentation area. Thisbreaks the flow of the presentation. There are remote control devicesthat alleviate this problem somewhat, but the remote control devicesintroduce additional problems. Consequently, these systems are notinteractive in a convenient way.

[0007] Thus, what is needed is a way of projecting video that overcomesthe problems of (i) projecting video only on a surface directly in frontof the projector, (ii) distortion caused when the surface beingprojected onto is not perfectly in front of the projector, (iii)requiring human intervention to change a projected image from onelocation to another, and (iv) the lack of convenient interactivity forprojection systems.

SUMMARY OF THE INVENTION

[0008] The present invention solves the problems of the prior art by, ingeneral, projecting an image onto any surface in a room and distortingthe image before projection so that a projected version of the imagewill not be distorted. The present invention also allows for a projectedimage to be displayed at multiple locations along a surface or multiplesurfaces. This allows a projected image to move from one location on asurface to another location on this or another surface, while theprojected image remains undistorted through the move.

[0009] Moreover, the present invention allows interaction between peopleand a projector. Interactive input, such as from a mouse, keyboard orspeech, may be used with versions of the present invention. Importantly,versions of the present invention can determine if an object is near aninteractive item (such as a hyperlink) on the projected image. This canoccur, for instance, if a person places a hand over the projected imageand near an interactive item. If so, the present invention can activatethe interactive item. This allows a person to interact with a projectedimage, e.g., as if his or her hand was a computer mouse or other inputdevice.

[0010] A more complete understanding of the present invention, as wellas further features and advantages of the present invention, will beobtained by reference to the following detailed description anddrawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0011]FIG. 1 is a representation of a room having a multiple-surfacedisplay projector in accordance with one embodiment of the presentinvention;

[0012]FIG. 2 is a block diagram of a multiple-surface display projectorin accordance with one embodiment of the present invention;

[0013]FIG. 3 is a flowchart of a method, in accordance with oneembodiment of the present invention, for projecting an undistorted imageso that a displayed image will be undistorted when shown at a selecteddestination area;

[0014]FIG. 4 is a flowchart of a method, in accordance with oneembodiment of the present invention, of adjusting correction surface andother parameters;

[0015]FIG. 5 is a flowchart of a method for obtaining an image todisplay in accordance with one embodiment of the present invention;

[0016]FIG. 6 is an exemplary screen shot of a graphical user interfacefor a multiple-surface display projector in accordance with oneembodiment of the present invention;

[0017]FIG. 7 is a flowchart of a method, in accordance with oneembodiment of the present invention, for incorporating interactive inputinto a projected image;

[0018]FIG. 8 is a block diagram of a multiple-surface display projectorin accordance with one embodiment of the present invention;

[0019]FIG. 9 is a block diagram of a multiple-surface display projectorin accordance with one embodiment of the present invention;

[0020]FIG. 10 is a flowchart of a method, in accordance with oneembodiment of the present invention, for determining if an object isnear an interactive item and, if so, for activating the interactiveitem; and

[0021]FIG. 11 is a flowchart of calibration, in accordance with oneembodiment of the present invention, of a multiple-surface displayprojector system having a camera.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

[0022] Referring now to FIG. 1, this figure provides an overview of thepresent invention. FIG. 1 shows a room 100 in which a multiple-surfacedisplay projector 120 is placed. Multiple-surface display projector 120will be discussed in greater detail in reference to upcoming figures, soonly an introduction of the multiple-surface display projector 120 willbe given in reference to FIG. 1.

[0023] In room 100 of FIG. 1, table 140 is placed on floor 160, and wall195 adjoins floor 160. Multiple-surface display projector 120 canproject an image on one of any number of surfaces. In FIG. 1,multiple-surface display projector 120 is projecting an image 130 ontotable 140, an image 150 onto floor 160, and images 170, 180, 190 ontowall 195. The multiple-surface display projector 120 will generallyproject only one image at a time. For instance, the multiple-surfacedisplay projector could display image 130 and not images 170, 180, 190,and 150.

[0024] The images 130, 150, 170, 180, and 190 displayed bymultiple-surface display projector 120 are undistorted. To createundistorted images on table 140, floor 160 and wall 195, themultiple-surface display projector 120 will use an undistorted image anddistort this image so that, when the image arrives at the surface ontowhich it is to be displayed, it will be undistorted when displayed. Thisis discussed in greater detail in reference to FIGS. 1 through 6. Themultiple-surface display projector 120 should be calibrated so that itcan properly show images at each location on each surface. For instance,image 150, shown at destination area 155 of floor 160, will requiredifferent distortion for its undistorted image than will image 130,shown on table 140.

[0025] Images 170 through 190 illustrate another aspect of amultiple-surface display projector 120, which is the ability to movedistortionless images along a surface. Images 170 through 190 aredisplayed one at a time, with image 170 displayed first, image 180displayed next, and image 190 displayed last. This allows the image tobe moved along wall 195. This would be useful, for instance, to directsomeone to a room location. At each location on wall 195, themultiple-surface display projector 120 will use different parameters sothat the image at the surface is undistorted. These parameters could bestored for each location. Alternatively, some parameters could be storedfor some locations and the parameters for a different locationcalculated from the stored parameters. Finally, the surface itself couldbe mathematically described and parameters could be determined from themathematical description of the surface.

[0026] In general, a video projector produces a rectangular image thathas a particular aspect ratio. By “distortionless,” “distortion-free” or“substantially undistorted” it is meant, for these types of projectors,that the projected image at the destination area (called the “displayedimage” herein) is an image that preserves the same proportion of widthto length of the original rectangular image (the “undistorted image”)and preserves the 90 degree angles of the original rectangular image.For other types of projectors (producing, for instance a round image),distortionless means that the displayed image will retain the sameapproximate proportions and angles as the undistorted image.

[0027] Although not shown in FIG. 1, but discussed below, themultiple-surface display projector 120 can also interact with a person,for example, using mouse or keyboard inputs or voice-recognizedtechnology. Additionally, a person could hold an object or anobstruction, such as the person's hand, between the multiple-surfacedisplay projector 120 and the displayed image. If the obstruction isnear or over an interactive item, the multiple-surface display projector120 can activate the interactive item. Consequently, themultiple-surface display projector 120 could activate a hyperlink andthen show additional images related to the hyperlink. Similarly, themultiple-surface display projector 120 can also determine if an object,such as a laser pointer, is near an interactive item.

[0028] Referring now to FIG. 2, this figure shows a block diagram of oneexemplary multiple-surface display projector 200. In this embodiment,the multiple-surface display projector 200 is non-interactive.Multiple-surface display projector 200 comprises a multiple-surfacedisplay controller 205, video projector 211, connection system 216, anda redirection device 215. Multiple-surface display projector 200 isconnected to a video source 280, is projecting a projected image 221onto destination area 226 of destination surface 222 to create adisplayed image 224, and can receive computer-readable code means fromsources such as compact disk 251.

[0029] As is known in the art, the methods and apparatus discussedherein may be distributed as an article of manufacture that itselfcomprises a computer readable medium having computer readable code meansembodied thereon. The computer readable program code means is operable,in conjunction with a computer system, to carry out all or some of thesteps to perform the methods or create the apparatuses discussed herein.The computer readable medium may be a recordable medium (e.g., floppydisks, hard drives compact disks, or memory cards) or may be atransmission medium (e.g., a network comprising fiber-optics, theworld-wide web, cables, or a wireless channel using time-divisionmultiple access, code-division multiple access, or other radio-frequencychannel). Any medium known or developed that can store informationsuitable for use with a computer system may be used. Thecomputer-readable code means is any mechanism for allowing a computer toread instructions and data, such as magnetic variations on a magneticmedia or height variations on the surface of a compact disk.

[0030] The multiple-surface display controller 205 comprises a processor207, a bus 210, a memory 220, a video receiver 230, video memory 240, aprojector controller 250, a distortion controller 260, and redirectioncontroller 270. Memory 220 comprises a multiple-surface displayprojector method 223, a graphics Application Programmer Interface (API)225, a Graphical User Interface (GUI) 227, and a surface DataBase (DB)229 having M sets of surface parameters 231 through 232. Video memory240 comprises an undistorted image 245. Projector controller 250comprises zoom 255 and focus 257 parameters and produces projectorcontrol signal 290. Distortion controller 260 comprises correctionsurface parameters 265 and distorted image 267. Redirection controller270 comprises pan and tilt locations 275.

[0031] Redirection device 215 comprises mirror 214 and pan/tiltmechanism 217. The mirror 214 has multiple degrees of freedom. Inparticular, the mirror is free to move relative to tilt axis 218 and panaxis 219. The multiple degrees of freedom of the mirror are in markedcontrast to normal video projectors, which have zero degrees or onedegree of freedom. The pan/tilt mechanism 217 moves mirror 214 aboutthese multiple degrees of freedom and selects one pan and one tiltlocation from a number of such locations. The combination of the mirror214 and pan/tilt mechanism 217 allows the redirection device 215 todirect an image to almost any surface in a room. Connection system 216is optional but may be used to mount video projector 211 and redirectiondevice 215 to a wall or other suitable location. Additionally,connection system 216 can be designed to allow for proper spacingbetween the video projector 211 and the redirection device 215: too muchspacing can cause an image projected by the video projector 211 to belarger than mirror 214, and too little spacing will not allow mirror 214to tilt as much as desired.

[0032] Redirection device 215 can be any device that can redirect light,e.g., a lens or a system of lenses, a mirror or multiple mirrors, fiberoptics, or any combination of these. Preferably, the redirection deviceis motorized and computer controllable. There are many such possiblemotorized and computer controllable devices in theatrical lighting, anda pan/tilt head is a popular and convenient redirection device.

[0033] The multiple-surface display controller 105 in this example is apersonal computer that comprises the processor 207 operatively coupledto the memory 220 through bus 210. Although shown as one physical unit,bus 210 can be any number of buses or interconnections. Memory 220 willconfigure the processor 105 to implement the methods, steps, andfunctions disclosed herein. The memory 220 could be distributed or localand the processor could be distributed or singular. The memory 220 couldbe implemented as an electrical, magnetic or optical memory, or anycombination of these or other types of storage devices. It should benoted that, although memory 220 is shown separately from other elementsof multiple-surface display controller 205, this is not necessarily thecase for all applications. For example, video memory 240 is commonlypart of a video adapter but in some systems is also part of RandomAccess Memory (RAM). Moreover, the term “memory” should be construedbroadly enough to encompass any information able to be read from orwritten to an address in the addressable space accessed by processor207. With this definition, information on a network is still withinmemory 220 of the multiple-surface display controller 205 because theprocessor 207 can retrieve the information from the network.

[0034] Similarly, although processor 207 is shown separately fromelements of multiple-surface display controller 205, many or all ofthese elements may be combined into one integrated circuit. Theprocessor 207 would then be part of this integrated circuit.

[0035] Multiple-surface display projector method 223 is a method thatcontrols the multiple-surface display projector 200. As such, it cancomprise any or all of the methods in FIGS. 3-5, 7, 10, and 11 that willbe discussed below. Multiple-surface display projector method 223controls multiple-surface display projector 200 to allow themultiple-surface display projector 200 to take an undistorted image,distort the undistorted image to a distorted image, and project thedistorted image onto a destination area of a destination surface.

[0036] The multiple-surface display projector method 200 can receiveundistorted images from any of a number of sources. An undistorted imageis defined herein as the source image that will be distorted andprojected. Shown in FIG. 1 are two sources of images: a video memory240, and a video source 280. Video memory 240 has an undistorted image245, which has digital information corresponding to a particular image.The undistorted image 245 in video memory 240 could be placed there by avideo adapter. This would occur if the screen (not shown) is beingprojected. The undistorted image 245 may be placed in video memory 240through other methods, such as through connections (e.g., universalserial bus connections or other serial connections).

[0037] Video source 280 provides an additional way for multiple-surfacedisplay controller 205 to receive images. The video source 280communicates with video receiver 230 to allow video images to be broughtinto multiple-surface display controller 205. These video images couldbe a series of images (e.g., movie images from a digital video disk orvideo cassette recorder) or could be still images (e.g., bitmap images).The video source 280 could be a Digital Video Disk (DVD) player thatcommunicates analog or digital video information to the video receiver230, which would be a graphics board. Alternatively, video source 280could be a compact disk (CD) that is read by a CD reader (as videoreceiver 230) and that contains bitmap images or presentation images.Also, video source 280 can be the output of a computer to a monitor,digital or analog, following, but not exclusively limited to, the VGA,SVGA, and XGA standards.

[0038] Regardless of how the images are input into multiple-surfacedisplay controller 205, the multiple-surface display controller 205needs to distort these images so that they are displayed correctly whenshown at a destination area. The methods used to do this are explainedin more detail below, but a short explanation will be given here.Multiple-surface display controller 205 is calibrated for particulardestination areas on destination surfaces. This calibration results inparameters that are used to control elements of multiple-surface displayprojector 200 in order to ensure that a projected image will not bedistorted when it reaches its destination area. In general, there willbe one set of parameters for each destination area of a destinationsurface. However, as previously discussed, it is possible to determinesome sets of parameters and calculate other sets, and it is possible tocalculate sets of parameters based on mathematical descriptions ofsurfaces.

[0039]FIG. 2 contains a surface database 229 that contains multiple setsof parameters 231 through 232. Each set of surface parameters 231through 232 contains parameters for one particular destination area, andeach set of surface parameters 231 through 232 is used to ensure that animage is properly displayed at one destination area. Themultiple-surface display projector 200 can select the appropriateparameters for the specific destination area that is selected.

[0040] For the destination area 226 of the destination surface 222 inFIG. 2, the multiple-surface display controller 205 has determined a setof parameters to be used for this particular location. These parameterscomprise correction surface parameters 265, zoom 255 and focus 257parameters, and pan and tilt parameters 275.

[0041] Correction surface parameters 265 are used to define a correctionsurface (shown in FIG. 6) in the distortion controller 260. Thecorrection surface is used to distort an undistorted image, such asundistorted image 245 of video memory 240, into a distorted image 267. Adistorted image is defined herein as the image that results when theundistorted image is mapped from its initial plane, orientation ortranslation to another plane, orientation or translation. The distortedimage is the image to be and that is projected by the video projector211. The distortion controller 260 maps an undistorted image to acorrection surface to create a distorted image 267.

[0042] There are a number of ways that the distortion controller 260 canperform this mapping. The distortion controller 260 could be a softwareobject or function, run on processor 207, that performs this mapping.Preferably, the distortion controller 260 could be a hardware devicethat performs this mapping at a fast enough speed to allow video source280 to be full motion video, such as progressive-scan film orprogressive-scan high definition television video. Another option is fordistortion controller 260 to be a computer graphics video adapter card.

[0043] If distortion controller 260 is a computer graphics card, thenmultiple-surface display projector method 223 can use the graphics API225 to define the correction surface parameters 265, to retrieve theundistorted image 245 from video memory 240, and to send thisundistorted image to the distortion controller/video adapter 260 tocreate distorted image 267. Such graphics APIs could be, for instance,DIRECTX, which is a graphics API for operating systems made byMICROSOFT, a software manufacturer. In this case, the correction surfaceparameters are (see also FIG. 6) X, Y, and Z information that define therotations of a correction plane about the X, Y, and Z axes,respectively, a scale that defines how the image is to be scaled, a lensthat defines the focal length of a virtual camera, and X and Ytranslations that define X and Y translations, respectively, of thecorrection plane on the X-Y plane.

[0044] Once the distortion controller/video adapter 260 maps theundistorted image to the distorted image 267, it transmits the distortedimage 293 to video projector 211. The distorted image 293 will generallybe carried on an analog signal through RCA or 9-pin DIN connectors instandards such as VGA, SVGA, or XGA. Nonetheless, the distorted image293 could be carried on analog or digital signals. The video projector211 can be any type of projector, except projectors comprised of threeseparated red/green/blue projection beams, although it is helpful ifzoom and focus can be remotely controlled by a computer.

[0045] The multiple-surface display projector method 223 also sets theparameters of zoom 255 and focus 257. These are transmitted byprojection controller 250 through signal 290 to the video projector 211.Other parameters may also be controlled by projection controller 250,such as contrast, brightness and whether the video projector accepts andoutputs progressive or interlaced video.

[0046] The video projector 211 projects a projected image 221. Theprojected image is defined herein as the image that leaves theprojector, hits the mirror and travels until just before the destinationsurface. This image is a combination of the distorted image, parametersof the video projector (such as zoom 255 and focus 257), and, to alesser degree, parameters of the redirection device 215 (such as pan andtilt locations 275).

[0047] To set the location onto which an image is projected, themultiple-surface display projector method 223 sets the pan and tiltparameters 275. These parameters are transmitted to the redirectiondevice 215, over signal 297, by the redirection controller 270.

[0048] In FIG. 2, the video projector 211 projects projected image 221onto destination area 226 to create a displayed image. A displayed imageis herein defined as the projected image at the destination area of thedestination surface. The displayed image should not be distorted andshould resemble the undistorted image.

[0049] In a possible embodiment, the redirection device 215 is astandard pan/tilt head used in theatrical lighting and is controlled bythe DMX protocol. The mirror 214 is controlled (by a pan/tilt headcontroller board as redirection controller 270) through a parallel portinterface, through a DMX cable and to a DMX input/output of theredirection device 215. A video image is digitized by a standard 30Hertz video adapter into undistorted image 245. Distortion controller260 is a video adapter that compensates for sheer and linear distortionby texture mapping the undistorted image on the correction surface. Todisplay existing computer applications, the undistorted image isobtained directly from video memory 240.

[0050] One way that multiple-surface display projector method 223calibrates multiple-surface display projector 200 for a particulardestination area is to allow an operator to see a displayed image thatis a representation of a calibration image. If distortion is seen in thedisplayed image, the operator can interact with GUI 227 (shown moreparticularly in FIG. 6) to adjust the parameters of the projected imageuntil distortion is no longer seen.

[0051] Thus, FIG. 2 shows a multiple-surface display projector 200 thatcan project undistorted images onto any surface in a room. It should benoted that, although multiple-surface display controller 205 is shownseparately from video projector 211, the multiple-surface displaycontroller 205 could be integral to the video projector 211.

[0052] It should be noted that the multiple-surface display projectorsof the present invention can project onto any relatively flat, planarsurface. Additionally, the multiple-surface display projectors of thepresent invention can be made to project on surfaces of any shape,although in this case the correction of distortion involves an accuratemathematical model of the surface. A reference that discusses methods todistort images projected on non-flat surfaces is Raskar et al., “TheOffice of the Future: A Unified Approach to Image-Based Modeling andSpatially Immersive Displays,” Proceedings of SIGGRAPH'98 (SpecialInterest Group on Computer Graphics, a department of the Association forComputing Machinery), Orlando, Fla., pp. 179-188, July, 1998, which isincorporated herein by reference.

[0053] Turning now to FIG. 3, this figure shows a flowchart of a method300 for projecting an undistorted image so that a displayed image willbe undistorted when shown at a selected destination area. This method isperformed whenever it is desired that video be projected onto somedestination area in a room. Method 300 begins when the destination areaand surface are selected. As previously discussed, each destination areawill have parameters associated with it that allow a displayed image tobe undistorted.

[0054] In step 315, these parameters are recalled or calculated. Theycan be calculated from a mathematical representation of the destinationsurface and the location of the destination area. Additional informationsuch as the location and orientation of the multiple-surface displayprojector may be added to this calculation. These parameters may also becalculated by using two or more parameter sets that have been determinedfor destination areas on the destination surface. For instance, assumethat a display image is to be moved to a destination area along a wall,parallel to the floor, and between two destination areas that areparallel to the floor, that are at the same height as the newdestination area, and that already have parameters calculated for them.In this case, the multiple-surface display projector can approximate theset of parameters for the new destination area as a linear interpolationof the parameters for the two destination areas.

[0055] Some of the parameters may be set in step 315, if desired. Forexample, this step can also include adjustment of the pan and tiltlocations for a pan/tilt head, which will adjust the mirror relative toits multiple degrees of freedom, and setting the zoom and focusparameters of the projector.

[0056] If the set of parameters has not yet been determined, theparameters may be determined in step 320. Step 320 will be moreparticularly described in reference to FIG. 4 (see also FIG. 6).

[0057] In step 330, an undistorted image to be displayed is obtained.This step is more particularly described in FIG. 5. The undistortedimage could come from any image source, such as a DVD player, videocassette recorder, computer output, satellite receiver, or presentationsoftware. In step 340, the undistorted image is mapped to the correctionsurface. This will properly translate, rotate, scale, and shear theundistorted image so that it will be displayed properly at a destinationarea. In step 350, the distorted image is output to the video projector.This output could be analog or digital.

[0058] In step 360, the distorted image is projected. If not performedpreviously, step 260 can also include adjustment of the pan and tiltlocations for a pan/tilt head, which will adjust the mirror relative toits multiple degrees of freedom, and setting the zoom and focusparameters of the projector.

[0059] In step 370, it is determined if the undistorted image ischanged. If not (step 370=NO), the distorted image is output. If theundistorted image has been changed (step 370=YES), step 380 isperformed. The change in the undistorted image may be made in a numberof ways. If the system of FIG. 2 is being used, for instance, anOperating System (OS) interrupt could be generated when the undistortedimage changes. Alternatively, if the multiple-surface display projectoris projecting down a wall, a timer could interrupt and cause thedistorted image to change.

[0060] In step 380, it is determined if the area or surface has changed.The area or surface could change through human intervention or throughprogramming of the multiple-surface display projector. If the area orsurface has changed (step 380=YES), the method is again performedstarting at step 380. If the area or surface has not changed (step 380NO), part of the method is performed, starting at step 330.

[0061] It is also possible to perform steps 370 and 380 in parallel.This would be beneficial if, for example, the same undistorted image isbeing displayed but the area or surface is changing. Note that in thelatter situation the same image would be obtained in step 330.

[0062] Thus, method 300 allows a multiple-surface display projector todisplay images on any surface and to move images across surfaces whilestill displaying distortion-free images.

[0063] To calibrate a multiple-surface display projector (withoutinteractive capability) for a particular destination area of adestination surface, method 320 of FIG. 4 is used. Method 320 is amethod that involves human intervention to determine whether patternsare or are not distorted. However, the method may easily be modified, inmanners known to those skilled in the art, to provide automaticcalibration. Automatic calibration will also be discussed in more detailin reference to FIG. 11.

[0064] Method 320 begins when a calibration pattern is projected onto adestination surface (step 410). An example calibration pattern is shownin FIG. 6, and such patterns are well known to those skilled in the art.This step may also included determining and saving the pan and tiltparameters for a pan/tilt head. This will save the relative location ofthe mirror, which allows images to be projected onto the destinationarea. In step 420, an operator inspects the displayed image of thecalibration pattern. This is the image of the calibration pattern as itexists at the destination area, with current correction surfaceparameters and video projector parameters.

[0065] If the projected image is distorted (step 430=YES), theparameters can be manually adjusted (step 440). This adjustmentcomprises changing parameters of the correction surface and theprojector. A GUI used for adjusting parameters is shown in FIG. 6. Oncethe parameters are adjusted, the process starts over again at step 410.If the projected image is not distorted (step 430=NO), the parametersfor the correction surface and projector are saved (step 450).

[0066] Method 320 may be performed for as many destination areas asdesired. Each set of parameters for each destination area can be storedfor later recall. This will allow the multiple-surface display projectorto project distortion-free images on any of a number of destinationareas.

[0067] Referring now to FIG. 5, this figure shows a method 330 forobtaining an undistorted image for display. Method 330 is performedwhenever it is desired that a new image be retrieved or to check todetermine if a new image has arrived. Method 330 allows multipledifferent branches for receiving undistorted images. For instance, thebranch having steps 510 through 530 is for retrieving images from avideo display, the branch having step 540 is for using a bitmap orpresentation software image, and the branch having steps 550 through 570is for receiving a series of images, such as film images.

[0068] In step 510, the location in video memory of the undistortedimage is determined. This will generally be determined through access toa graphics API, which will provide the functionality to determine wherean image is. In step 520, the video memory is accessed, which will alsogenerally be performed through a graphics API. In step 530, a copy ofthe undistorted image is made, and is generally stored in a differentlocation. For a computer system, the video memory will generally be on avideo adapter and the undistorted image will be copied from the videomemory to main memory, which could be Random Access Memory (RAM) orlong-term storage memory such as a hard drive.

[0069] If the video memory is not used, another program or the operatorcould provide the undistorted image to the multiple-surface displayprojector. This occurs in step 540. For instance, the operator couldselect an image from a drop-down box (as shown in FIG. 6). Additionally,an program, such as a presentation editor, could provide a slide to themultiple-surface display projector. Additionally, the image can beprovided through its network address using the URL (Uniform ResourceLocator) standard.

[0070] Alternatively, a video stream of images, such as from a DVDplayer or from the video output of a computer, could be displayed. Instep 550, the multiple-surface display projector receives an undistortedimage. This could be performed by taking the digital video output of aDVD player and storing the digital information. This step may alsoinclude decompressing information, such as if a Motion Picture ExpertsGroup (MPEG) stream is the input to a multiple-surface displayprojector. This step may also include digitizing an undistorted image.This could occur when an analog video output from a DVD player is usedas an input to a multiple-surface display projector. Moreover, themultiple-surface display projector could, if desired, additionallyprocess the undistorted image, such as performing 3:2 pulldown for filmsources. In step 560, it is determined if the new undistorted image isdifferent than the previous undistorted image. If not (step 560=NO), theprevious image is used (step 570). Additionally, method 300 should benotified of this fact so that steps 340 (mapping the undistorted imageto the correction surface), 350 (outputting the distorted image) and 360(project distorted image) can be skipped. This process will reduce thenumber of times undistorted images are loaded to a distortion controllerfor subsequent distortion. It should be noted that skipping steps 340through 360 will still allow the previously displayed image to bedisplayed. If the distortion controller is fast enough, then it is notnecessary to skip steps 340 and 350 of FIG. 3.

[0071] If the new image is different from the previous image (step560=YES), then, in step 580, the undistorted image is obtained fordisplay. Step 580 may also be reached through steps 530 and 540. Thus,at the end of method 330, an undistorted image is received and ready tobe distorted and projected.

[0072] Turning now to FIG. 6, this figure shows a screen shot of a GUIuseful for determining and saving parameters for a destination area.FIG. 6 shows a screen 600 having three windows 610, 620, and 630. Window610 allows access to the parameters of the different devices shown inFIG. 1, such as the projector controller and the pan/tilt head, and alsoallows the selection among pre-defined surface and viewports to beselected. The surface is the destination surface and destination area,selectable, e.g., from a dropdown box. Currently, the “default”destination area is selected. The viewport is the source of theundistorted image to be displayed, and this can also be selected througha dropdown box. The current viewport is “logo.”

[0073] The load button of window 610 will load previously savedparameters for a set of surfaces. The save button of window 610 willsave the parameters for a set of surfaces. The viewport image loads whenthe viewport is selected in the dropdown box (currently labeled “logo”)and the “viewport” button is pressed.

[0074] Window 620 allows parameters for the projector, mirror andcorrection surface to be adjusted for the particular case where theprojected surface is planar. The mirror parameters are pan and tiltlocations, which are adjustable through, e.g., sliders or by directlyentering numbers. The numbers beneath the pan and tilt locationsindicate the current settings of these locations. The projector portionallows the zoom and focus of the projector to be changed. The renderarea portion allows the correction surface parameters to be changed. Aspreviously discussed, these parameters are the X, Y and Z (written asRX, RY, and RZ parameters, respectively, in FIG. 6) that define therotations of a correction plane about the X, Y, and Z axes,respectively, a scale that defines how the image is to be scaled, a lensthat defines the focal length of a virtual camera, and X and Ytranslations (written as TX and TY parameters, respectively, in FIG. 6)that define X and Y translations, respectively, of the correction planeon the X-Y plane.

[0075] Window 630 contains correction surface 640 which has acalibration image 650 displayed on it as a texture. This image is called“logo” in window 610. Changing any of the render area parameters inwindow 620 will cause a change in the correction surface 640 and,consequently, a distortion in calibration image 650. However, changingmirror or projector parameters will not change the correction surface640 but will change the location of the displayed image.

[0076] What has been shown so far is a multiple-surface displayprojector that can project a distortion-free image onto a surface.However, this multiple-surface display projector did not allowinteraction between human operators and the multiple-surface displayprojector. The discussion that follows concerns interactive versions ofthe multiple-surface display projector.

[0077] Referring now to FIG. 7, this figure shows a flowchart of amethod 700 that integrates interactive input into a multiple-surfacedisplay projector. The multiple-surface display projector may be usedwith any type of interactive input, such as mice, keyboards or voicecommands. Many of the steps in method 700 have been previously discussedin reference to FIG. 3 and other figures. Consequently, only new stepswill be discussed in detail.

[0078] Method 700 begins when the correction surface and otherparameters are determined or recalled (step 705). In step 710, theundistorted image to be displayed is obtained, which may be performed bymethod 330 of FIG. 5. The undistorted image is mapped to a correctionsurface (step 715) and output to a video projector (step 720).

[0079] In step 725, input events are processed. Processing begins byobtaining an input event (step 730). Such input event could be themovement of a wireless mouse or the striking of a key on a wirelesskeyboard. Wireless devices are preferred as they are more mobile. Theinput event could also be someone speaking a term that corresponds to aterm being displayed. In step 735, it is determined if the event isgraphical. For instance, if a mouse is moved, the cursor for the mousemust also be moved. If a key is pressed, the key may be displayed on thedisplayed image. If the event is a timeout event of a timer, it is notclassified as graphical and the system goes straight to step 745.

[0080] In step 740, the graphical event is mapped to the correctionsurface. The current position of a cursor/mouse pointer is determinedand an appropriate image is mapped to the correction surface and placedover any data that already exists there. Generally, this may be done byloading an undistorted image of the event at a particular location inthe memory of a video adapter and allowing the video adapter to distortthe undistorted image (having the overlayed event image). For instance,if a mouse is moved, the image of the mouse pointer can be retrieved,the location of the new mouse location in the undistorted imageretrieved, and the image of the mouse pointer loaded into video memoryat the appropriate location. The video adapter with then can distort theentire image. Alternatively, the event image can be distorted during themapping to the correction surface and then be overlayed over the imagecurrent on the correction surface.

[0081] In step 745, the event is sent to the operating system (OS), ifdesired. Generally, for such events as mouse movements or keyboards, theoperating system can be used to keep track of the data being displayed.This is particularly true if the displayed image is from the videomemory of a computer system. Additionally, this step could also entailsending voice information to the OS to be turned to text.

[0082] The distorted image is projected in step 750, and a determinationas to whether the undistorted image has changed is made in step 760. Instep 765, it is determined if there has been a change in the inputdevice. The multiple-surface display projector could be notified of suchchanges through interrupts or the multiple-surface display projectorcould poll for changes. If there are no changes (step 765=NO), the sameimage is output; if there are changes (step 765=YES), the input event isagain obtained in step 730 and the method from step 730 is performed.

[0083] Referring now to FIG. 8, this figure shows a multiple-surfacedisplay projector 800 that allows for interaction with the projectedimage and for automatic calibration. Many of the elements ofmultiple-surface display projector 800 have been discussed in referenceto FIG. 2. Therefore, only additional elements will be discussed. Itshould be noted that multiple-surface display projector 800 can containelements of FIG. 2, such as the video receiver 230, video source 280,network connections and disk 251, but these have been removed from FIG.8 for space considerations.

[0084] Multiple-surface display projector 800 further comprises a camera820 having multiple degrees of freedom, a camera pan/tilt device 810connected to the camera 820, a camera connection 845 that connects theredirection device 215 to the camera pan/tilt device 810, and amultiple-surface display controller 805. Camera pan/tilt device 810allows the camera to be positioned at one of a multitude of differentpositions that are allowed by the multiple degrees of freedom of thecamera.

[0085] Multiple-surface display controller 805 has memory 220 thatcomprises additional elements of an image comparison 850, an undistortedCamera Image (CI) 853, a camera image 855, and a camera mapping 860.Multiple-surface display controller 805 also has a camera controller 870and an image receiver 880. Camera controller 870 has pan and tiltlocations 875.

[0086] Camera controller 870 adjusts the pan and tilt location of camera810 by adjusting the pan and tilt locations 875 and by transmittingthese to camera pan/tilt device 810. This allows the camera point to thedisplayed image, which allows feedback and interactive capabilities.

[0087] Image receiver 880 receives images from camera 820 and canoptionally process those images or package them for use by themultiple-surface display projector method 223. A camera image is definedherein as the image received by a camera, such as camera 820. The cameraimage should be a reflected version of the displayed image that reflectsoff the destination area to the camera (and, in FIG. 9 below, off themirror to the camera).

[0088] Camera mapping 860 may be placed in image receiver 880, if forinstance image receiver 880 is a video adapter, or could be placed inmemory 860. Camera mapping 860 is the information needed to transformeach pixel in the camera image 855 to an equivalent position in anundistorted image. In this manner, the original undistorted image (suchas undistorted image 245) and the undistorted camera image 853, afterbeing mapped from the camera image 855, can be compared. The undistortedcamera image is defined herein as the camera image after it has beenchanged back to an undistorted form. The undistorted camera image 853should be comparable to an undistorted image, such as undistorted image245, and calibration is performed to ensure that this is so.

[0089] Image comparison 850 is data that results from comparing anundistorted image with the undistorted camera image 853. This data isused to provide automatic calibration or to provide interactivecapability.

[0090] Referring now to FIG. 9, this figures shows multiple-surfacedisplay projector 900 and a graphical representation 905 of a comparisonbetween sent and received images. In the multiple-surface displayprojector 900 of FIG. 9, the multiple-surface display projector 805 isalternatively built into video projector 211. Camera 720 is in analternative location that can collect images reflected off of mirror214, and camera pan/tilt device 710 is held by extension 910. Videoprojector 211 is projecting an image onto destination area 930 and thereis a foreground obstruction 920 that also reflects some of the projectedimage.

[0091] Graphical representation 905 helps to graphically illustrate thecomparison of sent and received images. The undistorted image 940 isdistorted in block 945 and output to the video projector, which projectsa projected image. This image hits the destination surface atdestination area 930 and also hits the foreground obstruction 920. Theseimages are reflected back to mirror 214, which reflects them into camera720. The camera image received by the camera is mapped, in block 925, toan undistorted camera image 950.

[0092] Undistorted image 940 has two interactive items: “YES” and “NO”hyperlinks. Undistorted camera image 950 also has the same twointeractive items, only the “YES” has been partially distorted byforeground obstruction 920. This creates a distorted region 953 thatcomprises a distorted area 955 and a border 957. One way to determine ifthere is an obstruction is to compare colors between distorted area 955and the equivalent area on undistorted image 940. If the colors aredifferent, it is likely that there is an obstruction at this location.Another way to determine if there is an obstruction is to look for theborder 957, which is generally a dark area where there is no dark areain the undistorted image 940. Yet another way to determine if there isan obstruction is to determine if portions of items in the undistortedimage are now in different locations. For example, the bottom of the Yand the E are not in the correct positions.

[0093] Block 960 compares the two images and develops an imagecomparison 970. This image comparison 970 has a changed area 973 and aborder 977. The multiple-surface display projector 900 can determinefrom this data that there is an obstruction at this location and thatthis obstruction covers the “YES” interactive item. The “YES”interactive item can then be activated.

[0094] Multiple-surface display projector 900 can also determine whetherobjects other than obstructions are near interactive items. For example,a laser pointer could be near an interactive item. To determine theposition of the laser pointer, the undistorted image could be comparedto the undistorted camera image. Color changes, above a certainthreshold, could then determine the position of the laser pointer. Block906 could take this situation into account. Block 960 can also take aspecific object into account. Such a specific object could be, forinstance, a piece of cardboard with a printed icon on it. Block 960could determine the location of the specific object by comparing anundistorted image of the specific object, the undistorted image and theundistorted camera image, looking for an outline of the specific object,or through other methods known to those skilled in the art. Some ofthese methods are discussed in Crowley et al., “Things that see,”Communications of the Association for Computing Machinery (ACM), Vol.43(3), pp. 54-64, 2000, the disclosure of which is incorporated hereinby reference.

[0095] Thus, the systems of FIGS. 8 and 9 allow a person to interactwith a projected image.

[0096] Turning now to FIG. 10, this figure shows a flowchart of a method1000 for determining if an obstruction is near an interactive item and,if so, for activating the interactive item. Many of the steps in method1000 have already be discussed, and more time will be spent discussingnew steps. Method 1000 is used whenever it is desired that there beinteraction between a person and a displayed image.

[0097] Method 1000 starts when the system is calibrated for bothprojection and camera reception (step 1005). This will be explained ingreater detail in FIG. 11. In step 1010, the undistorted image todisplay is obtained. This has previously been discussed with referenceto FIG. 5. The undistorted image is mapped to a correction surface (step1015), and the distorted image is output (step 1020) and projected (step1025). In step 1030, the reflected images are received. The camera imagethat is received is then undistorted (step 1035) by using parametersstored in the calibration step (step 1005). The undistorted image andthe undistorted camera image are compared in step 1040.

[0098] Some comparisons have already been discussed. As is known in theart, there are a variety of comparisons that can be used. The followingis a list of references, the disclosure of which is hereby incorporateby reference, that describes comparison steps or methods that can beused with the present invention: Wren et al., “Pfinder: Real-TimeTracking of the Human Body,” Institute for Electronic and ElectricalEngineers (IEEE) Trans. Pattern Analysis and Machine Intelligence, 1997,19(7), p. 780-785; Bobick et al., “The KidsRoom: A Perceptually-BasedInteractive Immersive Story Environment,” PRESENCE: Teleoperators andVirtual Environments, 1999, 8(4), p. 367-391; Davis et al., “VirtualPAT: a Virtual Personal Aerobics Trainer,” Proc. of Workshop onPerceptual User Interfaces (PUI'98), 1998, San Francisco, Calif.; andIvanov et al., “Fast Lighting Independent Background Subtraction,” Proc.of the EEE Workshop on Visual Surveillance (VS'98), 1998, Bombay, India.

[0099] In step 1050, it is determined whether there is an object. Theobject could be a foreground obstruction, which is an object between theredirection device and the destination area, a laser pointer shined ontothe destination area, or a specific device, either a device placed onthe destination area or a foreground obstruction. If there is no object(step 1050=NO), the method proceeds in step 1070. If there is an object(step 1050=YES), it is determined if the object has moved from theprevious time that method 1000 was performed. This step allows theobject to be tracked and also can prevent multiple interactions with aninteractive event. For instance, if the object is near an interactiveitem, and the interactive item was previously activated, the displayedimage could change. It could be that the object is near or directly overa new interactive item. This could cause the new interactive item to beselected even though the operator may not want to select this item.There are other ways of preventing this from happening, such as delayinginput from obstructions for a short period of time after changingimages.

[0100] In step 1055, if the object has not moved (step 1055=NO) from theprevious iteration of method 1000, the method again starts in step 1070.If the object has moved (step 1055=YES), it is determined if the objectis within some predetermined distance from an interactive item. If theobject is not near an interactive item (step 1060=NO), the methodproceeds at step 1070. If the object is near an interactive item (step1060=YES), then the interactive item is activated (step 1065). Thiscould entail adding a new undistorted image having new interactive itemsor performing other functions. Alternatively, the movement of the objectcan be associate to a graphical element that can be moved over thesurface. For instance, the movement of the object can be associateddirectly with the OS mouse events of a computer system, and allow “drag”operations by hand.

[0101] In step 1070, it is determined whether the undistorted image haschanged. If the undistorted image has not changed (step 1070=NO), themethod continues to track or look for obstructions by proceeding at step1030. If the undistorted image has changed (step 1070=YES), such as ifactivation of the interactive item has changed the undistorted image,another undistorted image to display is retrieved in step 1010.

[0102] Thus, method 1000 allows a person to interact with a projectedimage. There are many uses for this type of system. As an example ofsuch a use, a mechanic could interact with a projected image to bring updetailed diagrams of the part of a vehicle on which he or she isworking.

[0103] Turning now to FIG. 11, a method 1005 is shown that allows amultiple-surface display projector to be calibrated for both projectionand reception. Method 1005 is used whenever a new destination area isgoing to be used, for periodic calibration, or if a previouslycalibrated destination area has changed.

[0104] Method 1005 begins when the correction surface and otherparameters are determined for a selected destination area (step 1110).This has been discussed in reference to FIG. 4, although with camerafeedback the method of FIG. 4 can be automated. In step 1120, acalibration pattern is displayed on the destination surface. In step1130, the camera is positioned, through adjusting tilt and pan locationparameters, to capture the calibration pattern. The camera controlparameters, which are the pan and tilt locations, are stored for thecurrent destination area (step 1140). The position of the calibrationpattern on the camera image is determined (step 1150), and the cameraimage is mapped to the correction surface in step 1160. This will allowthe camera image, mapped to the correction surface, to then beundistorted. This mapping will map the received image to an originalplane and area, essentially matching each received pixel with eachoriginal pixel of the undistorted image. This mapping can be easilydetermined by manual or automatic detection of only four points on theprojected surface. This is a well known process. In step 1170, themapping parameters are saved.

[0105] Also, it is beneficial to run steps 1120, 1150, 1160 and 1170with color calibration patterns. The color calibration patterns areprojected (step 1120) to determine the color parameters of the surface.The camera image of the color calibration patterns are compared to theoriginal color of the original color calibration pattern for each pixel(step 1160), and color correction information is stored (step 1170).Typically, the color calibration patterns are simply white, red, green,and blue rectangles.

[0106] Thus, what has been shown is a multiple-surface display projectorwith interactive capability. The multiple-surface display projector canilluminate any surface with an distortion-free image and can allowoperators to interact directly with the displayed image.

[0107] It is to be understood that the embodiments and variations shownand described herein are merely illustrative of the principles of thisinvention and that various modifications may be implemented by thoseskilled in the art without departing from the scope and spirit of theinvention. For instance, the camera may be placed in different positionsand many of the method steps may be performed in different orders.Moreover, if the multiple-surface display projector is used to projectonly onto one destination area of one destination surface, the mirrorcould be fixed into a permanent position.

What is claimed is:
 1. A multiple-surface display projector comprising:a multiple-surface display controller adapted to distort an undistortedimage into a distorted image; a video projector coupled to themultiple-surface display controller and adapted to project the distortedimage; and a redirection device positioned to redirect the projected anddistorted image onto a destination area of a destination surface.
 2. Themultiple-surface display projector of claim 1, wherein the redirectiondevice comprises a mirror, wherein the mirror is adapted to move aboutmultiple degrees of freedom, the mirror positioned to receive theprojected image from the video projector and to reflect the projectedimage onto the destination area.
 3. The multiple-surface displayprojector of claim 2, wherein the redirection device comprises apan/tilt head that itself comprises the mirror and a pan/tilt mechanism,the pan/tilt mechanism adapted to move the mirror to a specific locationabout the multiple degrees of freedom, the specific location selectedwhereby the mirror reflects the distorted image onto the destinationarea.
 4. The multiple-surface display projector of claim 3, wherein thepan/tilt mechanism is adapted to move the mirror relative to multipleaxes.
 5. The multiple-surface display projector of claim 4, wherein thepan/tilt mechanism is adapted to move the mirror to a specific panlocation and a specific tilt location.
 6. The multiple-surface displayprojector of claim 1, wherein: the multiple-surface display controllercomprises a means for distorting the undistorted image into thedistorted image; the video projector comprises a means for projectingthe distorted image; and the redirection device comprises a means forredirecting the projected and distorted image onto a destinationsurface.
 7. The multiple-surface display projector of claim 1, furthercomprising a camera positioned to receive a camera image that comprisesan image reflected from the destination area.
 8. The multiple-surfacedisplay projector of claim 7, wherein the multiple-surface displaycontroller undistorts the camera image to create an undistorted cameraimage and wherein the multiple-surface display controller compares theundistorted image with the undistorted camera image to determine ifthere is an object on the camera image.
 9. The multiple-surface displayprojector of claim 8, wherein the multiple-surface display controllerdetermines if the object is near an interactive item and, if so,activates the interactive item.
 10. The multiple-surface displayprojector of claim 9, wherein the object is an obstruction, an area oflight from a laser pointer or a specific object.
 11. Themultiple-surface display projector of claim 1, wherein themultiple-surface display controller further comprises zoom and focusinformation, and wherein the multiple-surface display controllercommunicates the zoom and focus information to the video projector. 12.The multiple-surface display projector of claim 1, further comprising adistortion controller adapted to distort the undistorted image into thedistorted image.
 13. The multiple-surface display projector of claim 12,wherein the distortion controller comprises a video adapter and wherethe multiple-surface display controller sets parameters of a correctionsurface in the video adapter and places the undistorted image as atexture on the correction surface.
 14. The multiple-surface displayprojector of claim 13, wherein the parameters of the correction surfaceare RX, RY, RZ, lens, scale, TX, and TY.
 15. A method to project asubstantially distortionless image on any of a multiple of surfaces andfor providing interaction with the substantially distortionless image,the method comprising: distorting an undistorted image to create adistorted image, the step of distorting performed so that a projectedimage of the distorted image will be substantially undistorted whenprojected onto a destination area on a destination surface; projectingthe distorted image; and redirecting projected light to a predeterminedposition selected to illuminate the destination area with the projectedand distorted image.
 16. The method of claim 15, wherein thepredetermined position comprises a pan location and a tilt location of amirror.
 17. The method of claim 15, wherein the projected and distortedimage at the destination area is a displayed image, and where the methodfurther comprises the steps of: receiving a camera image that comprisesa reflected version of the displayed image; determining if there is anobject; and if there is an object, performing the steps of: determininga location of the object; and determining if the object is within apredetermined distance from an interactive item.
 18. The method of claim17, wherein the step of determining if there is an object comprises thestep of undistorting the camera image by mapping the camera image to anoriginal plane and surface area.
 19. The method of claim 18, wherein thestep of determining if there is an object comprises the step ofcomparing the undistorted image and the image that results fromundistorting the camera image.
 20. The method of claim 15, wherein thestep of distorting comprises the step of mapping the undistorted imageto a correction surface.
 21. The method of claim 15, wherein the step ofprojecting further comprises the step of adjusting zoom and focus.
 22. Asystem to project a substantially distortionless image on any of amultiple of surfaces and for providing interaction with thesubstantially distortionless image, the system comprising: a computersystem comprising: a memory that stores computer-readable code; and aprocessor operatively coupled to the memory, the processor configured toimplement the computer-readable code, the computer-readable codeconfigured to: distort an undistorted image to create a distorted image,the distortion performed so that a projected image of the distortedimage will be substantially undistorted when projected onto adestination area on a destination surface; output the distorted image toa projector suitable for projecting video; and cause a redirectiondevice to redirect projected light to a predetermined position selectedto illuminate the destination area with the projected and distortedimage.
 23. The system of claim 22, further comprising: the redirectiondevice that comprises a mirror and that is coupled to computer, whereinthe mirror is adapted to move about multiple degrees of freedom, themirror positioned to receive the projected image from the videoprojector and to reflect the projected image onto the destination area;and a video projector placed to project images onto the mirror andcoupled to the computer.
 24. The system of claim 23, wherein thecomputer-readable code is further configured to communicate a panlocation and a tilt location to the redirection device.
 25. The systemof claim 22, further comprising a camera positioned to receive a cameraimage that comprises an image reflected from the destination area,wherein the camera is coupled to the computer system.
 26. The system ofclaim 25, wherein the computer-readable code is further configured toundistort the camera image to create an undistorted camera image and tocompare the undistorted image with the undistorted camera image todetermine if there is an object on the camera image.
 27. The system ofclaim 26, wherein the computer-readable code is further configured todetermine if the object is near an interactive item and, if so, toactivate the interactive item.
 28. The system of claim 27, wherein theobject is an obstruction, an area of light from a laser pointer or aspecific object.
 29. An article of manufacture comprising: a computerreadable medium having computer readable code means embodied thereon,the computer readable program code means comprising: a step to distortan undistorted image to create a distorted image, the distortionperformed so that a projected image of the distorted image will besubstantially undistorted when projected onto a destination area on adestination surface; a step to output the distorted image to a projectorsuitable for projecting video; and a step to cause a redirection deviceto redirect projected light to a predetermined position selected toilluminate the destination area with the projected and distorted image.30. The article of manufacture of claim 29, wherein thecomputer-readable code means further comprises a step to communicate apan location and a tilt location to the redirection device.
 31. Thearticle of manufacture of claim 29, wherein the computer-readable codemeans further comprises a step to undistort the camera image to createan undistorted camera image and a step to compare the undistorted imagewith the undistorted camera image to determine if there is an object onthe camera image.
 32. The article of manufacture of claim 31, whereinthe computer-readable code means further comprises a step to determineif the object is near an interactive item and, if so, to activate theinteractive item.
 33. The article of manufacture of claim 32, whereinthe object is an obstruction, an area of light from a laser pointer or aspecific object.